The present invention relates generally to communication protocols, and more specifically to a system for optimizing channel bandwidth utilization by simultaneously transmitting sets of multiple Data Transfer Units (DTUs), while also collecting receipt status information regarding previously transmitted DTUs.
In many applications, as it is generally known, the reliable transmission of data from a transmitting device to one or more receiving devices requires that some kind of feedback information be provided from the receivers to the transmitter to acknowledge receipt or request data re-transmission. In many types of networks, such as communication satellite based networks, large amounts of data are transmitted through high-speed channels with potentially large latency and high rates of data loss. In this category of networks in particular, the provision of feedback information to transmitters from receivers may cause a significant waiting period between when a transmission is completed and when the transmitter receives the relevant feedback information describing whether a retransmission is required. The transmitted data must remain queued in the transmitter during such a period, since retransmission may be necessary. As a consequence, overall system performance may suffer, potentially resulting in a significant loss of overall throughput in the network.
In some existing systems, large blocks of data may be transmitted by a transmitting device, which then waits until a status indication has been received from the receiver before either re-transmitting data in the block or moving on to transmission of a subsequent block. In order to limit the amount of waiting required in the transmitter, the size of such blocks of transmit data has been limited by a practical upper bound.
Other existing systems transmit data until an indication is received from a receiving device that a portion of previously transmitted data was not correctly received. The transmitter then retransmits all previously transmitted data beginning with the portion that was reported as lost.
In general, such approaches taken by existing systems have been appropriate for file transfers, but have significant drawbacks when applied to operational environments in which multi-media data is streamed to real time application on one or more receiving devices. In such streaming media applications, new data must be continuously provided to the receiver(s) so that the presentation of data to a user or users is not paused or interrupted. Moreover, the retransmission of data that was correctly received may waste valuable bandwidth, and accordingly retransmissions should minimally interfere with the provision of new data from the transmitter.
For these reasons and others, it would be desirable to have a system for transmitting data which is more suitable for real-time, media-streaming applications. The system should desirably cause less overall waiting time in the transmitter than existing systems, provide more flexibility with regard to the amount of data which can be transmitted without receipt of confirmation from a receiver, and improve network bandwidth utilization.